package com.activitiTest.test2;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;

/**
 * author : 冯孟活 ^_^
 * dates  : 2015年9月1日 下午9:09:46
 * class   : 请假流程测试
 */
public class LeaveProcess {
	public static void main(String[] args) {
		
		//ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 这句会默认从classpath下  获取 activiti.cfg.xml配置文件
		//ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(inputStream); // 也可通过流来获取
		ProcessEngine processEngine = ProcessEngineConfiguration // 通过流程引擎配置对象来创建流程引擎实例
											.createProcessEngineConfigurationFromResource("activiti.cfg.xml").buildProcessEngine(); // 直接通过资源路径获取配置文件来构建一个流程引擎实例
		RepositoryService repositoryService = processEngine.getRepositoryService(); // 通过流程引擎来获取知识库服务
		repositoryService.createDeployment().addClasspathResource("LeaveProcess.bpmn").deploy(); // 通过知识库服务来部署流程定义(把流程定义持久化)
		System.out.println("已经部署的流程个数="+repositoryService.createProcessDefinitionQuery().count()); // 可以查询所有已经发布的流程
		
		  /*
			 把流程定义发布到Activiti引擎后，我们可以基于它发起新流程实例。 
			 对每个流程定义，都可以有很多流程实例。 
			 流程定义是“蓝图”，流程实例是它的一个运行的执行。
		  */
		
		
		
	}
}
